Programmable controllers are a well known class of industrial computers for operating a wide variety of manufacturing equipment, such as assembly lines and machine tools, in accordance with a stored control program. The program comprises a series of process control instructions which are read out and executed to examine the condition of selected sensing devices on the controlled equipment, and to energize or deenergize selected operating devices contingent upon the status of one or more of the examined sensing devices.
The state of many sensing and operating devices can be represented by a single bit of data which is manipulated by the control program instructions. Other devices, such as position sensors, provide multiple bits of data representing a condition of the equipment being controlled. For these latter devices, instructions are provided to manipulate bytes and words of data representing the state of the sensing and operating devices. As used herein the term "byte" refers to eight-bits of data, and the term "word" refers to sixteen-bits, or two bytes, of data. Additional program instructions perform arithmetic operations, timing and counting functions, and complex statistical reporting operations. These instructions have become quite standardized in the industry and are directly associated with the elements of a ladder logic diagram which is easily understood by process control engineers.
As programmable controllers were applied to more complex manufacturing systems, multiple controllers were used to govern the operation of different portions of the system with each one executing a separate control program. In such applications, it becomes necessary for one programmable controller to exchange data regarding the manufacturing process with the other programmable controllers. Although techniques have been developed to communicate data among the programmable controllers, the coordination of several of these devices can become rather complex and complicated.
One of the attributes of programmable controllers is their modularity. The typical controller comprises a rack that holds and electrically connects a number of functional modules. These modules include a program processor, modules that receive signals from sensor and supply signals to actuators, and network communication modules. A programmable controller can be tailored to a specific application by choosing the necessary modules from a wide variety of different ones available for use.
With the advent of custom integrated circuits, greater functionality has been incorporated into the program processor module. For example, communication interface circuitry, which previously was provided in a separate module, is now part of the program processor module. With this greater functionality comes a need to be able to tailor a universal program processor module to a specific application. Such tailoring can provide increased memory space and custom firmware.
One way of fulfilling this need to tailor a program processor module is to store firmware for the custom functionality in non-volatile memory devices on a small removable printed circuit board. Because of its size and shape this type of printed circuit board is sometimes referred to as a "memory card". The memory card connects through the front panel of the program processor module so that the module's circuits can read the firmware stored on the card.
Since a large manufacturing plant has a number of programmable controllers with different versions of program processor modules, it is often necessary to be able to use a given function card with a variety of processor modules. Furthermore, a function card may be custom designed for a specific user and relatively expensive to replace should the user upgrade to a future generation of a programmable controller from the same manufacturer. Therefore a function card should be usable with subsequent generations of programmable controllers from the same manufacturer.